package subCategoria;
// Generated 05/07/2011 23:25:32 by Hibernate Tools 3.2.1.GA

import categoria.Categoria;
import descricaoProduto.DescricaoProduto;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;

/**
 * SubCategoria generated by hbm2java
 */
@Entity
@Table(name = "sub_categoria", schema = "public")
@NamedQuery(name="subCategoria.listar", query="from SubCategoria")
public class SubCategoria implements java.io.Serializable {

    private int idSubCategoria;
    private Categoria categoria;
    private String nome;
    private Boolean statusSubCategoria;
    private List<DescricaoProduto> descricaoProdutos = new ArrayList<DescricaoProduto>(0);

    public SubCategoria() {
    }

    public SubCategoria(int idSubCategoria) {
        this.idSubCategoria = idSubCategoria;
    }

    public SubCategoria(int idSubCategoria, Categoria categoria, String nome, Boolean statusSubCategoria, List<DescricaoProduto> descricaoProdutos) {
        this.idSubCategoria = idSubCategoria;
        this.categoria = categoria;
        this.nome = nome;
        this.statusSubCategoria = statusSubCategoria;
        this.descricaoProdutos = descricaoProdutos;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_sub_categoria", unique = true, nullable = false)
    public int getIdSubCategoria() {
        return this.idSubCategoria;
    }

    public void setIdSubCategoria(int idSubCategoria) {
        this.idSubCategoria = idSubCategoria;
    }

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "id_categoria")
    public Categoria getCategoria() {
        return this.categoria;
    }

    public void setCategoria(Categoria categoria) {
        this.categoria = categoria;
    }

    @Column(name = "nome", length = 100)
    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Column(name="status_sub_categoria")
    public Boolean getStatusSubCategoria() {
        return statusSubCategoria;
    }

    public void setStatusSubCategoria(Boolean statusSubCategoria) {
        this.statusSubCategoria = statusSubCategoria;
    }
    
    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "objSubCategoria")
    public List<DescricaoProduto> getDescricaoProdutos() {
        return this.descricaoProdutos;
    }

    public void setDescricaoProdutos(List<DescricaoProduto> descricaoProdutos) {
        this.descricaoProdutos = descricaoProdutos;
    }
}